Research on human-computer interactions seeks to improve the ease with which people use electronic devices. Pursuing this objective has led to an array of different input devices such as keyboards, mice, trackballs, joysticks, game controllers, microphones, touch screens, graphics tablets, and the like. Each of these various input devices is supported by software that interprets the signals generated by the device hardware. For some technologies, such as voice recognition, it is advances in software rather than advances in hardware that contribute most to the usability of an input device. Continuing advances in input device hardware require concordant advances in software to maximize the usability of new types of input devices.